# 扩展板与配件 ```{admonition} 本文引用的文件 :class: note - [parrot.rst](../../../products/mpython/extboard/parrot.rst) - [tutorials_parrot.rst](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [parrot_kit.rst](../../../products/mpython/extboard/tutorials/parrot_kit.rst) - `parrot.py` - `bluebit.py` ``` ## 产品概述 掌控系列扩展板以“即插即用、功能丰富”为核心,围绕掌控板提供电机驱动、音频播放与语音合成、红外发射与学习、I/O与I2C扩展等能力,帮助学习者快速完成机器人、物联网与创客项目。其中: - 掌控拓展板(Parrot):体积小巧、内置锂电池与电源管理,支持两路PWM电机驱动、音频输出、TTS、红外收发与12路IO及2路I2C扩展。 - blue:bit模块生态:通过I2C/UART等接口接入超声波、颜色、数码管、点阵、MIDI、MP3、OLED等传感器与显示模块,进一步丰富扩展能力。 - 配套套件:Python入门套装包含掌控板、Parrot拓展板、RGB光环板、直流电机、灯带、各类传感器与执行器,适合教学与DIY实践。 适用场景:课堂编程、机器人控制、智能家居原型、声音交互、红外遥控复刻、数据采集与可视化等。 **章节来源** - [parrot.rst:6-30](../../../products/mpython/extboard/parrot.rst) - [parrot_kit.rst:11-32](../../../products/mpython/extboard/tutorials/parrot_kit.rst) ## 核心业务流程 以下流程覆盖Parrot拓展板的典型使用路径:从硬件安装到功能调用,贯穿电机驱动、音频/TTS、红外发射与学习。 ```text sequenceDiagram participant User as "用户" participant Board as "掌控板" participant Parrot as "Parrot拓展板" participant I2C as "I2C总线" participant Audio as "音频子系统" participant IR as "红外模块" User->>Board : 安装Parrot并供电 Board->>Parrot : 初始化I2C(地址0x10/0x16) parrot.set_speed(MOTOR_1, speed) -> I2C : 写入速度命令 parrot.led_on(MOTOR_1, brightness) -> I2C : 写入亮度命令 Audio->>Board : 初始化播放器 Board->>Audio : 播放本地或网络音频 IR->>Parrot : learn() 进入学习模式 Parrot-->>IR : 返回学习状态/数据 IR->>Parrot : send(buff) 发送红外编码 ``` **图表来源** - `parrot.py:20-41` - `parrot.py:59-77` - `parrot.py:195-238` - [tutorials_parrot.rst:18-41](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [tutorials_parrot.rst:60-93](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [tutorials_parrot.rst:109-143](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) **章节来源** - [tutorials_parrot.rst:11-41](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [tutorials_parrot.rst:60-93](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [tutorials_parrot.rst:109-143](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) ## 功能模块清单 - 电机驱动(Parrot) - 职责:两路PWM电机控制,支持正反转与调速;同一接口可用作LED调光。 - 验收要点:set_speed范围-100~100;get_speed返回当前速度;led_on/led_off可调亮度和关闭。 - 参考实现:`parrot.py:20-56`、`parrot.py:59-96` - 电池电量检测(Parrot) - 职责:读取拓展板电压值(mV)。 - 验收要点:通过I2C读取寄存器并解析为整型电压。 - 参考实现:`parrot.py:99-108` - 红外发射与学习(Parrot) - 职责:NEC编码生成、任意波形编码、红外信号学习与回放。 - 验收要点:encode_nec/encode_raw生成buff;learn阻塞/非阻塞;send重复码;stop_send停止;get_learn_data获取学习结果。 - 参考实现:`parrot.py:112-186`、`parrot.py:189-243` - 音频播放与TTS(Parrot) - 职责:本地/网络音频播放;文本转语音(需联网与配置)。 - 验收要点:audio.player_init/play/pause/stop/volume;TTS需在线服务。 - 参考教程:[tutorials_parrot.rst:60-93](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - blue:bit模块族(I2C/UART外设) - 职责:温度(NTC/LM35)、四键/五向按键、温湿度SHT20、颜色传感器、光线、超声波、数码管(TM1650/HT16K33)、8x8点阵、LCD1602、MIDI、MP3、OLED串口屏、引脚扩展器等。 - 验收要点:各模块按I2C/UART协议通信,提供统一API;注意供电与连线。 - 参考实现:`bluebit.py:47-123`、`bluebit.py:181-247`、`bluebit.py:277-322`、`bluebit.py:324-412`、`bluebit.py:422-570`、`bluebit.py:573-751`、`bluebit.py:754-808`、`bluebit.py:811-871`、`bluebit.py:874-1010`、`bluebit.py:1012-1102`、`bluebit.py:1119-1186` - 套件配套与示例 - 职责:提供完整教具与演示代码,便于课堂与自学。 - 验收要点:能驱动TT马达、舵机、灯带、传感器,并在OLED上显示数据。 - 参考教程:[parrot_kit.rst:11-32](../../../products/mpython/extboard/tutorials/parrot_kit.rst)、[parrot_kit.rst:44-103](../../../products/mpython/extboard/tutorials/parrot_kit.rst)、[parrot_kit.rst:112-198](../../../products/mpython/extboard/tutorials/parrot_kit.rst) **章节来源** - `parrot.py:20-243` - `bluebit.py:47-1186` - [tutorials_parrot.rst:11-143](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [parrot_kit.rst:11-198](../../../products/mpython/extboard/tutorials/parrot_kit.rst) ## 数据与状态 - 电机速度与亮度 - 数据结构:速度值-100~100(负值为反转),亮度0~100。 - 状态流转:设置速度/亮度后,I2C写入拓展板寄存器生效;查询时从内部缓存返回最近一次设置值。 - 参考实现:`parrot.py:20-56`、`parrot.py:59-96` - 电池电量 - 数据结构:mV整数。 - 状态流转:I2C读寄存器并解包为无符号整型。 - 参考实现:`parrot.py:99-108` - 红外编码与学习 - 数据结构:NEC编码buff(含载波频率、长度、循环位置、code表、data序列);学习结果buff。 - 状态流转:encode_*生成buff → send发送;learn阻塞等待接收端按键 → get_learn_data取回buff → send回放。 - 参考实现:`parrot.py:112-186`、`parrot.py:189-243` - blue:bit模块数据 - 温度:摄氏度浮点数;按键:模拟值映射到方向键;颜色:RGB/HSV三元组;距离:cm;数码管:数字显示;点阵:帧缓冲;MIDI:音符与音量;MP3:播放控制与音量;OLED:字符与位图。 - 参考实现:`bluebit.py:47-123`、`bluebit.py:181-247`、`bluebit.py:277-322`、`bluebit.py:324-412`、`bluebit.py:422-570`、`bluebit.py:573-751`、`bluebit.py:754-808`、`bluebit.py:811-871`、`bluebit.py:874-1010`、`bluebit.py:1012-1102`、`bluebit.py:1119-1186` **章节来源** - `parrot.py:20-243` - `bluebit.py:47-1186` ## 关键约束与边界 - 电源与负载 - 内置锂电池驱动能力有限,建议大功率或长时间应用采用外接USB或外部供电。 - 参考说明:[parrot.rst:81-83](../../../products/mpython/extboard/parrot.rst) - 引脚复用限制 - P5、P11对应掌控板按键A/B,仅用于数字输入且电平会被翻转,避免冲突。 - 参考说明:[parrot.rst:81-83](../../../products/mpython/extboard/parrot.rst) - 文件系统与音频大小 - 本地MP3受MicroPython文件系统与RAM限制,过大文件难以下载播放,应压缩音频。 - 参考说明:[tutorials_parrot.rst:53-57](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - 网络依赖 - 网络音频与TTS需联网且URL必须完整可解析。 - 参考说明:[tutorials_parrot.rst:79-93](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - 红外学习距离 - 学习时发射与接收管需正对且距离约1cm,以保证信号强度与成功率。 - 参考说明:[tutorials_parrot.rst:119-128](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - 模块供电与连线 - blue:bit模块通过I2C/UART连接,注意VCC/GND与信号线正确接线,避免短路或反接。 - 参考说明:[parrot_kit.rst:112-198](../../../products/mpython/extboard/tutorials/parrot_kit.rst) **章节来源** - [parrot.rst:81-83](../../../products/mpython/extboard/parrot.rst) - [tutorials_parrot.rst:53-93](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [tutorials_parrot.rst:119-128](../../../products/mpython/extboard/tutorials/tutorials_parrot.rst) - [parrot_kit.rst:112-198](../../../products/mpython/extboard/tutorials/parrot_kit.rst)